import { createRouter, createWebHistory } from 'vue-router'

import { useUserStore } from '@/stores'
import routes from './routes'
const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes: routes
})

// 页面访问拦截: 前置路由守卫
/**
 * vue2: to 去哪 from 从哪来 next:Function 放行
 * 说明:vue2需要通过next函数放行*
 * vue3: to 去哪 from 从哪来
 */

router.beforeEach((to) => {
  /** 
  /*页面访问拦截:
  * 根据是否有token，决定用户是否可以访问to页面
  * 1.有token同时排除=》登录、注册等=》正常访问=》什么也不需要做
  * 2.没有token=》跳回登录页 =》 returnpath地址!
  */
  //  给页面添加title
  document.title = `优医问诊-${to.meta.title || ''}`
  const store = useUserStore()
  // 白名单，不需要登录也可以访问
  const wihteList = ['/login', '/other']
  //  如果没有token同时不在白名单里面
  if (!store.user?.token && !wihteList.includes(to.path)) return '/login'
})

export default router
